/*!
 * \file te_header.h
 *
 * \brief 消息头操作
 *
 * All Rights Reserved Copyright (C) 2014 broada,Co.,Ltd.
 *
 * \version 1.0
 * \author songbb
 * \date 2016/09/24
 *
 */

#ifndef __TE_HEADER_H_
#define __TE_HEADER_H_

#include "te_core.h"

/*!
 * 判断是否是心跳包
 *
 * \param p_payload         (数据内容)
 * \param ui_payload_len    (数据长度)
 *
 * \return FR_YES  是\n
 *         FR_NO   否
 *
 */
int te_header_is_heartbeat(char *p_payload
                            , unsigned int ui_payload_len);

/*!
 * 根据通用包头判断协议
 *
 * \param p_st_conn         (ct)
 * \param p_payload         (数据内容)
 * \param ui_payload_len    (数据长度)
 *
 * \return 0  失败\n
 *         1  成功
 *
 */
int te_header_detect(Conntrack *p_st_conn
                    , char *p_payload
                    , unsigned int ui_payload_len);

/*!
 * 解析通用包头
 *
 * \param p_payload             (数据内容)
 * \param ui_payload_len        (数据长度)
 * \param p_st_te_header       (通用头结构体)
 *
 * \return 0  失败\n
 *         1  成功
 *
 */
int te_header_unpack(char *p_payload
                    , unsigned int ui_payload_len
                    , TE_header *p_st_te_header);

#endif
